iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 12
0
自我挑戰組

ArasPLM開發分享系列 第 12

[Day12]發送HTTP Request請求至Aras

  • 分享至 

  • xImage
  •  

除了可以利用先前說的IOM傳遞AML去與Aras連線之外,也可以利用HTTP Request請求來與Aras做連線/新增的動作,但是建議還是使用AML來與資料庫做溝通,所以這邊只會大致講一下JavaScript與C#的Http Request用法,以下的資料都是存成JSON格式傳送至Aras

JavaScript

  1. 首先先製作一個簡單的html網頁,利用javascript抓取text中的輸入文字,將這些文字利用XMLHttpRequest傳送至Aras,URL部分則填入 http://xxx.xxx.xxx.xxx/Innovatorserver/server/OData/CAD ,這邊傳送的對象為CAD,表頭的部分輸入連線資訊,密碼因為Aras內部是用MD5的格式來記錄,所以記得要將密碼改為MD5的格式
<html>
    <head>
    </head>

    <body>
        <h1>Aras</h1>
        <span>Item_Number</span><input class="text" type="text" id="Aras-item_number">
        <span>Name</span><input class="text" type="text" id="Aras-name">
        <span>Description</span><input class="text" type="text" id="Aras-description">    
        <input class="submit" type="submit" id="Aras-button"value="Aras-button" 
        onClick="myFun()">

        <script type="text/javascript">
            function myFun(){
                var item_number = document.getElementById("Aras-item_number").value;
                var name = document.getElementById("Aras-name").value;
                var description = document.getElementById('Aras-description').value;
                
                var xhr = new XMLHttpRequest();
                var url = "http://XXX.XXX.XXX.XXX/innovatorserver/server/OData/CAD";
                xhr.open("POST", url, true);

                xhr.setRequestHeader("Content-Type", "application/json");
                xhr.setRequestHeader("DATABASE", "InnovatorSolutions");
                xhr.setRequestHeader("AUTHUSER", "admin");
                xhr.setRequestHeader("AUTHPASSWORD", "XXXXXXXXXXX");
                xhr.setRequestHeader("TIMEZONE_NAME", "Taipei Standard Time");
                var data = "{\"item_number\": \""+item_number+"\",\"name\": 
                \""+name+"\",\"description\": \""+description+"\"}";

                xhr.send(data);
            }
        </script>
        
    </body>
</html>
  1. 使用HTTP Request要注意的是不能跨網域傳輸,所以必須先將網頁架設在與目標Aras同網域下,IP要一樣,因為前幾天有介紹過如何部屬與架站了,有興趣的朋友可以看(https://ithelp.ithome.com.tw/articles/10216234)
    的介紹,所以這邊就不再多做介紹

  2. 最後開啟前端顯示畫面,要注意上方的IP必須要和Aras的IP一致,輸入屬性資料後,點選Aras-button案紐後,進入Aras的CAD後就能看到多新增一筆資料了

C#

  1. C#一樣也有提供HTTP Request的功能,要注意的是上方要先using System.Text和System.Net.Http才能使用,下方表頭一樣加入連線資訊,最後再加入要新增的屬性內容,傳送到Aras當中
using System.Text;
using System.Net.Http;

namespace TLTC_WebService.Library
{
    public class Connection
    {
        public void ArasHttpRequest(string item_number, string name, string description)
        {
            HttpClient client = new HttpClient();
            HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Post,     
            "http://XXX.XXX.XXX.XXX/innovatorserver/server/odata/CAD");
            
            requestMessage.Headers.Add("DATABASE", "InnovatorSolutions");
            requestMessage.Headers.Add("AUTHUSER", "admin");
            requestMessage.Headers.Add("AUTHPASSWORD", "XXXXXXXXXX");
            requestMessage.Headers.Add("TIMEZONE_NAME", "Taipei Standard Time");
            
            requestMessage.Content = new StringContent("{\"item_number\":           
            \""+item_number+"\",\"name\": \""+name+"\",\"description\": \""+description+"\"}",               Encoding.UTF8, "application/json");
            
            HttpResponseMessage response = 
            client.SendAsync(requestMessage).GetAwaiter().GetResult();
        }
    }
}

上一篇
[Day11]Aras使用Form Dialog將MVC嵌入彈跳視窗
下一篇
[Day13]MVC檔案上傳
系列文
ArasPLM開發分享30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言